/**
 *   axios相关封装
 *   1、请求url的前缀
 *   2、拦截器
 *      请求
 *      响应
 *
 *
 */
import axios from 'axios'
import { Loading } from 'element-ui'
var loadingInstance = ''
// 请求拦截器
axios.interceptors.request.use((cfg) => {
  // 接口的基础地址会和接口地址部分组合成一起发送请求
  //   cfg.baseURL = 'http://127.0.0.1:5000/api/v1'
  //   cfg代表请求参数  统一携带请求参数
  //  接口调用需要登录后的token参数 可以统一设置请求头信息
  cfg.headers.Authorization = localStorage.getItem('token')
  // 请求转圈圈loading状态
  loadingInstance = Loading.service({
    lock: true,
    text: 'Loading',
    spinner: 'el-icon-loading',
    background: 'rgba(0, 0, 0, 0.7)'
  })
  return cfg
})
// 响应拦截器 统一处理响应数据
axios.interceptors.response.use((res) => {
  // console.log(res)
  // 方法二  在响应拦截器中进行token的存储
  // 接口状态返回0 并且 服务端有返回token的情况下存储token到本地
  if (res.data.code === 0 && res.data.token) {
    localStorage.setItem('token', res.data.token)
  }
  // setTimeout(() => {
  // 请求完毕关闭loading状态
  loadingInstance.close()
  // }, 700)

  return res
})

export default axios
